UCLA's Data Structures
& Algorithms Projects
This course coversa combination of homework assignments and projects; the early projects and homeworks introduced us to various data structures & enabled us to implement them, the latter projects allowed us to explore for creative solutions using the various concepts we learned.
The most note worthy of these projects was the game Battleship. We were provided a barebones skeleton from which we would build the tradition 2 player board game. The biggest challenge of ths project was developing the computer players whose constraints included: (1) the computer must place their ships in under 1 second, (2) it must select a shot within 4 seconds, (3) it must beat a mediocre player at least 80% of the time. By analyzing the probabilities of each point on the board and a customized recursive algorithm that searches for ships once it finds a hit, I was able to achieve a 97% win rate, completing 1000 games consistenly in under 100 seconds.
Other projects include a maze solver which used stacks, queues, or recursion to see if a maze is possible from a given starting point to an exit. The code for these projects can be found in the Git link at the bottom of the page.